package edu.eam.gruposenior.gestorLEcciones.entidades;

import java.io.Serializable;
import javax.persistence.*;

import java.util.List;


/**
 * The persistent class for the usuario database table.
 * 
 */
@Entity
@NamedQueries({
	@NamedQuery(name = Usuario.FIND_ALL, query = "select u from Usuario u"), 
	@NamedQuery(name="Usuario.findByNivkPass",query="select u from Usuario u where u.nickname=:nickname and u.password=:password")
})
public class Usuario implements Serializable {
	
	public static final String FIND_ALL = "Usuario.findAll";
	
	private static final long serialVersionUID = 1L;

	@Id
	private String cedula;

	private Boolean estado;

	private String nickname;

	@Column(name="nombre_completo")
	private String nombreCompleto;
	
	
	 /**
     *Roles del usuario.
     */
    @OneToMany(fetch = FetchType.EAGER, mappedBy = "usuario", cascade = CascadeType.ALL)
    private List<DetalleRol> roles;


	private String password;

	private String telefono;

	//bi-directional many-to-one association to LeccionAprendida
	@OneToMany(mappedBy="usuario", fetch=FetchType.EAGER)
	private List<LeccionAprendida> leccionAprendidas;

	//bi-directional many-to-one association to UsuarioProyecto
	@OneToMany(mappedBy="usuarioBean", fetch=FetchType.EAGER)
	private List<UsuarioProyecto> usuarioProyectos;

    public Usuario() {
    }

	public String getCedula() {
		return this.cedula;
	}

	public void setCedula(String cedula) {
		this.cedula = cedula;
	}

	public String getNickname() {
		return this.nickname;
	}

	public void setNickname(String nickname) {
		this.nickname = nickname;
	}

	public String getNombreCompleto() {
		return this.nombreCompleto;
	}

	public void setNombreCompleto(String nombreCompleto) {
		this.nombreCompleto = nombreCompleto;
	}

	public String getPassword() {
		return this.password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getTelefono() {
		return this.telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	public List<LeccionAprendida> getLeccionAprendidas() {
		return this.leccionAprendidas;
	}

	public void setLeccionAprendidas(List<LeccionAprendida> leccionAprendidas) {
		this.leccionAprendidas = leccionAprendidas;
	}
	
	public List<UsuarioProyecto> getUsuarioProyectos() {
		return this.usuarioProyectos;
	}

	public void setUsuarioProyectos(List<UsuarioProyecto> usuarioProyectos) {
		this.usuarioProyectos = usuarioProyectos;
	}

	/**
	 * @return the roles
	 */
	public List<DetalleRol> getRoles() {
		return roles;
	}

	/**
	 * @param roles the roles to set
	 */
	public void setRoles(List<DetalleRol> roles) {
		this.roles = roles;
	}

	/**
	 * @return the estado
	 */
	public Boolean getEstado() {
		return estado;
	}

	/**
	 * @param estado the estado to set
	 */
	public void setEstado(Boolean estado) {
		this.estado = estado;
	}
	
	@Override
	public String toString() {
		return nombreCompleto;
	}
	
}